package com.sg.dto.integration.component;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.Objects;

/**
 * @desc RedisBusinessDataResDto
 * @使用场景
 */
@Data
public class RedisBusinessDataResDto extends BaseDto implements Serializable {

    /**
     * 自定义字段1
     */
    @ApiModelProperty("自定义字段1")
    private String customField1;

    /**
     * 自定义字段2
     */
    @ApiModelProperty("自定义字段2")
    private String customField2;

    /**
     * 自定义字段3
     */
    @ApiModelProperty("自定义字段3")
    private String customField3;

    /**
     * 自定义字段4
     */
    @ApiModelProperty("自定义字段4")
    private String customField4;

    /**
     * 自定义字段5
     */
    @ApiModelProperty("自定义字段5")
    private String customField5;

    /**
     * 自定义字段6
     */
    @ApiModelProperty("自定义字段6")
    private String customField6;

    /**
     * 自定义字段7
     */
    @ApiModelProperty("自定义字段7")
    private String customField7;

    /**
     * 自定义字段8
     */
    @ApiModelProperty("自定义字段8")
    private String customField8;

    /**
     * 自定义字段9
     */
    @ApiModelProperty("自定义字段9")
    private String customField9;

    /**
     * 自定义字段10
     */
    @ApiModelProperty("自定义字段10")
    private String customField10;

    /**
     * 自定义字段11
     */
    @ApiModelProperty("自定义字段11")
    private String customField11;

    /**
     * 自定义字段12
     */
    @ApiModelProperty("自定义字段12")
    private String customField12;

    /**
     * 自定义字段13
     */
    @ApiModelProperty("自定义字段13")
    private String customField13;

    /**
     * 自定义字段14
     */
    @ApiModelProperty("自定义字段14")
    private String customField14;

    /**
     * 自定义字段15
     */
    @ApiModelProperty("自定义字段15")
    private String customField15;

    /**
     * 自定义字段16
     */
    @ApiModelProperty("自定义字段16")
    private String customField16;

    /**
     * 自定义字段17
     */
    @ApiModelProperty("自定义字段17")
    private String customField17;

    /**
     * 自定义字段18
     */
    @ApiModelProperty("自定义字段18")
    private String customField18;

    /**
     * 自定义字段19
     */
    @ApiModelProperty("自定义字段19")
    private String customField19;

    /**
     * 自定义字段20
     */
    @ApiModelProperty("自定义字段20")
    private String customField20;

    /**
     * 自定义字段21
     */
    @ApiModelProperty("自定义字段21")
    private String customField21;

    /**
     * 自定义字段22
     */
    @ApiModelProperty("自定义字段22")
    private String customField22;

    /**
     * 自定义字段23
     */
    @ApiModelProperty("自定义字段23")
    private String customField23;

    /**
     * 自定义字段24
     */
    @ApiModelProperty("自定义字段24")
    private String customField24;

    /**
     * 自定义字段25
     */
    @ApiModelProperty("自定义字段25")
    private String customField25;

    /**
     * 自定义字段26
     */
    @ApiModelProperty("自定义字段26")
    private String customField26;

    /**
     * 自定义字段27
     */
    @ApiModelProperty("自定义字段27")
    private String customField27;

    /**
     * 自定义字段28
     */
    @ApiModelProperty("自定义字段28")
    private String customField28;

    /**
     * 自定义字段29
     */
    @ApiModelProperty("自定义字段29")
    private String customField29;

    /**
     * 自定义字段30
     */
    @ApiModelProperty("自定义字段30")
    private String customField30;

    /**
     * 自定义字段31
     */
    @ApiModelProperty("自定义字段31")
    private String customField31;

    /**
     * 自定义字段32
     */
    @ApiModelProperty("自定义字段32")
    private String customField32;

    /**
     * 自定义字段33
     */
    @ApiModelProperty("自定义字段33")
    private String customField33;

    /**
     * 自定义字段34
     */
    @ApiModelProperty("自定义字段34")
    private String customField34;

    /**
     * 自定义字段35
     */
    @ApiModelProperty("自定义字段35")
    private String customField35;

    /**
     * 自定义字段36
     */
    @ApiModelProperty("自定义字段36")
    private String customField36;

    /**
     * 自定义字段37
     */
    @ApiModelProperty("自定义字段37")
    private String customField37;

    /**
     * 自定义字段38
     */
    @ApiModelProperty("自定义字段38")
    private String customField38;

    /**
     * 自定义字段39
     */
    @ApiModelProperty("自定义字段39")
    private String customField39;

    /**
     * 自定义字段40
     */
    @ApiModelProperty("自定义字段40")
    private String customField40;

    /**
     * 自定义字段41
     */
    @ApiModelProperty("自定义字段41")
    private String customField41;

    /**
     * 自定义字段42
     */
    @ApiModelProperty("自定义字段42")
    private String customField42;

    /**
     * 自定义字段43
     */
    @ApiModelProperty("自定义字段43")
    private String customField43;

    /**
     * 自定义字段44
     */
    @ApiModelProperty("自定义字段44")
    private String customField44;

    /**
     * 自定义字段45
     */
    @ApiModelProperty("自定义字段45")
    private String customField45;

    /**
     * 自定义字段46
     */
    @ApiModelProperty("自定义字段46")
    private String customField46;

    /**
     * 自定义字段47
     */
    @ApiModelProperty("自定义字段47")
    private String customField47;

    /**
     * 自定义字段48
     */
    @ApiModelProperty("自定义字段48")
    private String customField48;

    /**
     * 自定义字段49
     */
    @ApiModelProperty("自定义字段49")
    private String customField49;

    /**
     * 自定义字段50
     */
    @ApiModelProperty("自定义字段50")
    private String customField50;

    /**
     * 周期ID（目标周期ID）
     */
    @ApiModelProperty("周期ID（目标周期ID）")
    private String periodId;

    /**
     * 周期类型标识
     */
    @ApiModelProperty("周期类型标识")
    private String cycleTypeCode;

    /**
     * 周期类型实例标识
     */
    @ApiModelProperty("周期类型实例标识")
    private String cycleTypeInstanceCode;

    /**
     * 周期开始时间
     */
    @ApiModelProperty("周期开始时间")
    private Date cycleStartTime;

    /**
     * 周期结束时间
     */
    @ApiModelProperty("周期结束时间")
    private Date cycleEndTime;

    /**
     * 更新周期开始时间
     */
    @ApiModelProperty("更新周期开始时间")
    private String updateCycleStartTime;

    /**
     * 更新周期结束时间
     */
    @ApiModelProperty("更新周期结束时间")
    private String updateCycleEndTime;

    /**
     * 更新周期类型标识
     */
    @ApiModelProperty("更新周期类型标识")
    private String updateCycleTypeCode;

    /**
     * 冗余单位
     */
    @ApiModelProperty("冗余单位")
    private String unit;

    /**
     * 填报评价责任人对象ID
     */
    @ApiModelProperty("填报评价责任人对象ID")
    private String personLiableObjId;

    /**
     * 填报评价责任人业务角色对象ID
     */
    @ApiModelProperty("填报评价责任人业务角色对象ID")
    private String bizRoleObjId;

    /**
     * 填报评价责任人业务角色标识
     */
    @ApiModelProperty("填报评价责任人业务角色标识")
    private String bizRoleObjCode;

    /**
     * 填报评价责任人业务角色对象名称
     */
    @ApiModelProperty("填报评价责任人业务角色对象名称")
    private String bizRoleObjName;

    /**
     * 扩展字段3（科目ID）
     */
    @ApiModelProperty("扩展字段3（科目ID）")
    private String extendedField3;

    /**
     * 上一周期被评对象目标周期ID
     */
    @ApiModelProperty("上一周期被评对象目标周期ID")
    private String lastEvaObjTargetCycleId;

    /**
     * 上一周期ID
     */
    @ApiModelProperty("上一周期ID")
    private String lastCycleId;

    /**
     * 是否工作周期数据
     */
    @ApiModelProperty("是否工作周期数据")
    private String isWorkCycleData;

    /**
     * 父子中周期类型
     */
    @ApiModelProperty("父子中周期类型")
    private String parentSubMidCycleType;

    /**
     * 标准数据计算周期模型
     */
    @ApiModelProperty("标准数据计算周期模型")
    private String standardDataCalcCycleModel;

    /**
     * 工作周期更新切片
     */
    @ApiModelProperty("工作周期更新切片")
    private String workCycleUpdateSlice;

    /**
     * 内容表类型编码
     */
    @ApiModelProperty("内容表类型编码")
    private String tableTypeCode;

    /**
     * 冗余一级目标分类ID
     */
    @ApiModelProperty("冗余一级目标分类ID")
    private String rootTargetCategoryId;

    /**
     * 虚拟组织成员就职记录ID
     */
    @ApiModelProperty("虚拟组织成员就职记录ID")
    private String virtualOrgInductionRecordId;

    /**
     * 角色ID
     */
    @ApiModelProperty("角色ID")
    private String roleId;

    /**
     * 角色标识
     */
    @ApiModelProperty("角色标识")
    private String roleCode;

    /**
     * 角色名称
     */
    @ApiModelProperty("角色名称")
    private String roleName;

    /**
     * 关联上级账户ID
     */
    @ApiModelProperty("关联上级账户ID")
    private String parentAccountId;

    /**
     * 总金额
     */
    @ApiModelProperty("总金额")
    private String totalBudgetAmount;

    /**
     * 账户余额
     */
    @ApiModelProperty("账户余额")
    private String accountActualBalance;

    /**
     * 可用金额
     */
    @ApiModelProperty("可用金额")
    private String settlableBalance;

    /**
     * 冻结金额
     */
    @ApiModelProperty("冻结金额")
    private String unSettlableBalance;

    /**
     * 累计结算金额
     */
    @ApiModelProperty("累计结算金额")
    private String accruedSettledAmount;

    /**
     * 是否预算账户
     */
    @ApiModelProperty("是否预算账户")
    private String isBudgetAccount;

    /**
     * 是否统计账户
     */
    @ApiModelProperty("是否统计账户")
    private String isStatisticalAccount;

    /**
     * 是否到账账户
     */
    @ApiModelProperty("是否到账账户")
    private String isIncomingAccount;

    /**
     * 关联归属主体类型编码
     */
    @ApiModelProperty("关联归属主体类型编码")
    private String accountObjectTypeCode;

    /**
     * 关联归属主体ID
     */
    @ApiModelProperty("关联归属主体ID")
    private String accountObjectId;

    /**
     * 关联归属主体标识
     */
    @ApiModelProperty("关联归属主体标识")
    private String accountContentCode;

    /**
     * 关联扣减预算账户ID
     */
    @ApiModelProperty("关联扣减预算账户ID")
    private String relSubBudgetAccountId;

    /**
     * 周期预算金额
     */
    @ApiModelProperty("周期预算金额")
    private String cycleBudgetAmount;

    /**
     * 预算金额占比
     */
    @ApiModelProperty("预算金额占比")
    private String budgetRate;

    /**
     * 预算周期模型编码
     */
    @ApiModelProperty("预算周期模型编码")
    private String budgetCycleModeTypeCode;

    /**
     * 被评对象目标周期ID
     */
    @ApiModelProperty("被评对象目标周期ID")
    private String evaObjTargetCycleId;

    /**
     * 资金来源ID
     */
    @ApiModelProperty("资金来源ID")
    private String capitalSourceId;

    /**
     * 关联目标内容类型编码
     */
    @ApiModelProperty("关联目标内容类型编码")
    private String targetCycleContentTypeCode;

    /**
     * 关联目标内容ID
     */
    @ApiModelProperty("关联目标内容ID")
    private String targetCycleContentId;

    /**
     * 数据归属个人ID
     */
    @ApiModelProperty("数据归属个人ID")
    private String belongToPersonalIdentityId;

    /**
     * 归属内容表主键ID
     */
    @ApiModelProperty("归属内容表主键ID")
    private String entityId;

    /**
     * 数据归属内容表主键ID
     */
    @ApiModelProperty("数据归属内容表主键ID")
    private String belongToContentId;

    /**
     * 上级账户归属主体标识
     */
    @ApiModelProperty("上级账户归属主体标识")
    private String parentAccountContentCode;

    /**
     * 关联扣减预算账户归属主体标识
     */
    @ApiModelProperty("关联扣减预算账户归属主体标识")
    private String relSubBudgetAccountCode;

    /**
     * 归属账户ID
     */
    @ApiModelProperty("归属账户ID")
    private String accountId;

    /**
     * 周期阶段资料发布时间
     */
    @ApiModelProperty("周期阶段资料发布时间")
    private String updateBatch;

    /**
     * 数据归属内容表类型编码
     */
    @ApiModelProperty("数据归属内容表类型编码")
    private String belongToContentTypeCode;

    /**
     * 扩展字段2
     */
    @ApiModelProperty("扩展字段2")
    private String extendedField2;

    /**
     * 资金使用率
     */
    @ApiModelProperty("资金使用率")
    private String fundUsageRate;

    /**
     * 字段名
     */
    @ApiModelProperty("字段名")
    private String fieldName;

    /**
     * 映射字段名
     */
    @ApiModelProperty("映射字段名")
    private String mapFieldName;

    /**
     * 上一归属周期ID
     */
    @ApiModelProperty("上一归属周期ID")
    private String previousCycleId;

    /**
     * 上一更新周期ID
     */
    @ApiModelProperty("上一更新周期ID")
    private String preUpdateCycleId;

    /**
     * 上一更新目标周期ID
     */
    @ApiModelProperty("上一更新目标周期ID")
    private String preUpdateEvaTargetCycleId;

    /**
     * 被评对象类型编码
     */
    @ApiModelProperty("被评对象类型编码")
    private String evaObjTypeCode;

    /**
     * 被评对象内容表主键ID
     */
    @ApiModelProperty("被评对象内容表主键ID")
    private String evaObjEntityId;

    /**
     * 关联归属主体ID
     */
    @ApiModelProperty("关联归属主体ID")
    private String accountObjectld;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;
        RedisBusinessDataResDto that = (RedisBusinessDataResDto) o;
        return (
                customField1 == that.customField1 &&
                        customField2 == that.customField2 &&
                        customField3 == that.customField3 &&
                        customField4 == that.customField4 &&
                        customField5 == that.customField5 &&
                        customField6 == that.customField6 &&
                        customField7 == that.customField7 &&
                        customField8 == that.customField8 &&
                        customField9 == that.customField9 &&
                        customField10 == that.customField10 &&
                        customField11 == that.customField11 &&
                        customField12 == that.customField12 &&
                        customField13 == that.customField13 &&
                        customField14 == that.customField14 &&
                        customField15 == that.customField15 &&
                        customField16 == that.customField16 &&
                        customField17 == that.customField17 &&
                        customField18 == that.customField18 &&
                        customField19 == that.customField19 &&
                        customField20 == that.customField20 &&
                        customField21 == that.customField21 &&
                        customField22 == that.customField22 &&
                        customField23 == that.customField23 &&
                        customField24 == that.customField24 &&
                        customField25 == that.customField25 &&
                        customField26 == that.customField26 &&
                        customField27 == that.customField27 &&
                        customField28 == that.customField28 &&
                        customField29 == that.customField29 &&
                        customField30 == that.customField30 &&
                        customField31 == that.customField31 &&
                        customField32 == that.customField32 &&
                        customField33 == that.customField33 &&
                        customField34 == that.customField34 &&
                        customField35 == that.customField35 &&
                        customField36 == that.customField36 &&
                        customField37 == that.customField37 &&
                        customField38 == that.customField38 &&
                        customField39 == that.customField39 &&
                        customField40 == that.customField40 &&
                        customField41 == that.customField41 &&
                        customField42 == that.customField42 &&
                        customField43 == that.customField43 &&
                        customField44 == that.customField44 &&
                        customField45 == that.customField45 &&
                        customField46 == that.customField46 &&
                        customField47 == that.customField47 &&
                        customField48 == that.customField48 &&
                        customField49 == that.customField49 &&
                        customField50 == that.customField50 &&
                        periodId == that.periodId &&
                        cycleTypeCode == that.cycleTypeCode &&
                        cycleTypeInstanceCode == that.cycleTypeInstanceCode &&
                        cycleStartTime == that.cycleStartTime &&
                        cycleEndTime == that.cycleEndTime &&
                        updateCycleStartTime == that.updateCycleStartTime &&
                        updateCycleEndTime == that.updateCycleEndTime &&
                        updateCycleTypeCode == that.updateCycleTypeCode &&
                        unit == that.unit &&
                        personLiableObjId == that.personLiableObjId &&
                        bizRoleObjId == that.bizRoleObjId &&
                        bizRoleObjCode == that.bizRoleObjCode &&
                        bizRoleObjName == that.bizRoleObjName &&
                        extendedField3 == that.extendedField3 &&
                        lastEvaObjTargetCycleId == that.lastEvaObjTargetCycleId &&
                        lastCycleId == that.lastCycleId &&
                        isWorkCycleData == that.isWorkCycleData &&
                        parentSubMidCycleType == that.parentSubMidCycleType &&
                        standardDataCalcCycleModel == that.standardDataCalcCycleModel &&
                        workCycleUpdateSlice == that.workCycleUpdateSlice &&
                        tableTypeCode == that.tableTypeCode &&
                        rootTargetCategoryId == that.rootTargetCategoryId &&
                        virtualOrgInductionRecordId == that.virtualOrgInductionRecordId &&
                        roleId == that.roleId &&
                        roleCode == that.roleCode &&
                        roleName == that.roleName &&
                        parentAccountId == that.parentAccountId &&
                        totalBudgetAmount == that.totalBudgetAmount &&
                        accountActualBalance == that.accountActualBalance &&
                        settlableBalance == that.settlableBalance &&
                        unSettlableBalance == that.unSettlableBalance &&
                        accruedSettledAmount == that.accruedSettledAmount &&
                        isBudgetAccount == that.isBudgetAccount &&
                        isStatisticalAccount == that.isStatisticalAccount &&
                        isIncomingAccount == that.isIncomingAccount &&
                        accountObjectTypeCode == that.accountObjectTypeCode &&
                        accountObjectId == that.accountObjectId &&
                        accountContentCode == that.accountContentCode &&
                        relSubBudgetAccountId == that.relSubBudgetAccountId &&
                        cycleBudgetAmount == that.cycleBudgetAmount &&
                        budgetRate == that.budgetRate &&
                        budgetCycleModeTypeCode == that.budgetCycleModeTypeCode &&
                        evaObjTargetCycleId == that.evaObjTargetCycleId &&
                        capitalSourceId == that.capitalSourceId &&
                        targetCycleContentTypeCode == that.targetCycleContentTypeCode &&
                        targetCycleContentId == that.targetCycleContentId &&
                        belongToPersonalIdentityId == that.belongToPersonalIdentityId &&
                        entityId == that.entityId &&
                        belongToContentId == that.belongToContentId &&
                        parentAccountContentCode == that.parentAccountContentCode &&
                        relSubBudgetAccountCode == that.relSubBudgetAccountCode &&
                        accountId == that.accountId &&
                        updateBatch == that.updateBatch &&
                        belongToContentTypeCode == that.belongToContentTypeCode &&
                        extendedField2 == that.extendedField2 &&
                        fundUsageRate == that.fundUsageRate &&
                        fieldName == that.fieldName &&
                        mapFieldName == that.mapFieldName &&
                        previousCycleId == that.previousCycleId &&
                        preUpdateCycleId == that.preUpdateCycleId &&
                        preUpdateEvaTargetCycleId == that.preUpdateEvaTargetCycleId &&
                        evaObjTypeCode == that.evaObjTypeCode &&
                        evaObjEntityId == that.evaObjEntityId &&
                        accountObjectld == that.accountObjectld
        );
    }

    @Override
    public int hashCode() {
        return Objects.hash(
                super.hashCode(),
                customField1,
                customField2,
                customField3,
                customField4,
                customField5,
                customField6,
                customField7,
                customField8,
                customField9,
                customField10,
                customField11,
                customField12,
                customField13,
                customField14,
                customField15,
                customField16,
                customField17,
                customField18,
                customField19,
                customField20,
                customField21,
                customField22,
                customField23,
                customField24,
                customField25,
                customField26,
                customField27,
                customField28,
                customField29,
                customField30,
                customField31,
                customField32,
                customField33,
                customField34,
                customField35,
                customField36,
                customField37,
                customField38,
                customField39,
                customField40,
                customField41,
                customField42,
                customField43,
                customField44,
                customField45,
                customField46,
                customField47,
                customField48,
                customField49,
                customField50,
                periodId,
                cycleTypeCode,
                cycleTypeInstanceCode,
                cycleStartTime,
                cycleEndTime,
                updateCycleStartTime,
                updateCycleEndTime,
                updateCycleTypeCode,
                unit,
                personLiableObjId,
                bizRoleObjId,
                bizRoleObjCode,
                bizRoleObjName,
                extendedField3,
                lastEvaObjTargetCycleId,
                lastCycleId,
                isWorkCycleData,
                parentSubMidCycleType,
                standardDataCalcCycleModel,
                workCycleUpdateSlice,
                tableTypeCode,
                rootTargetCategoryId,
                virtualOrgInductionRecordId,
                roleId,
                roleCode,
                roleName,
                parentAccountId,
                totalBudgetAmount,
                accountActualBalance,
                settlableBalance,
                unSettlableBalance,
                accruedSettledAmount,
                isBudgetAccount,
                isStatisticalAccount,
                isIncomingAccount,
                accountObjectTypeCode,
                accountObjectId,
                accountContentCode,
                relSubBudgetAccountId,
                cycleBudgetAmount,
                budgetRate,
                budgetCycleModeTypeCode,
                evaObjTargetCycleId,
                capitalSourceId,
                targetCycleContentTypeCode,
                targetCycleContentId,
                belongToPersonalIdentityId,
                entityId,
                belongToContentId,
                parentAccountContentCode,
                relSubBudgetAccountCode,
                accountId,
                updateBatch,
                belongToContentTypeCode,
                extendedField2,
                fundUsageRate,
                fieldName,
                mapFieldName,
                previousCycleId,
                preUpdateCycleId,
                preUpdateEvaTargetCycleId,
                evaObjTypeCode,
                evaObjEntityId,
                accountObjectld
        );
    }

}
